Technical Q&A QA1075
Making sense of IOKit error codes


QÅFI/O Kit ÇégǡǃǢÇÈÇΔÇ´ÅADZÇÃñcëÂÇ»ó ÇÃÉGÉâÅ[ÉRÅ[ÉhÇÃà”ñ°ÇímÇÈÇ…ÇÕǫǧǵÇΩÇÁÇÊÇ¢ÇÃÇ≈ǵÇÂǧǩÅB

AÅFI/O Kit ÇÕÅAMach ÉJÅ[ÉlÉãÇ™égǧÉGÉâÅ[ÉRÅ[ÉhëÃånÇΔìØÇ∂LJÇÃÇégǢNjÇ∑ÅBI/O Kit ÉGÉâÅ[ÇÃí∑Ç≥ÇÕ 32 ÉrÉbÉgÇ≈ÅAå`éÆÇÕÉäÉXÉg 1Åimach/error.h ÇÊÇËÅjÇ…é¶Ç∑ÇΔÇ®ÇËÇ≈Ç∑ÅB

è„à                                   â∫à 
| system(6) | subsystem(12) | code(14) |

ÉäÉXÉg 1 ÉGÉâÅ[î‘çÜÇÃå`éÆ

è„à  6 ÉrÉbÉgÇÕÉVÉXÉeÉÄÇÃílÅAéüÇà 12 ÉrÉbÉgÇÕÉTÉuÉVÉXÉeÉÄÇÃílÅAâ∫à  14 ÉrÉbÉgÇÕÉGÉâÅ[ÉRÅ[ÉhÇ≈Ç∑ÅB

ÉGÉâÅ[ÉRÅ[ÉhÇ…ä÷Ç∑ÇÈèÓïÒÇíTÇ∑ç≈èâÇÃèÍèäÇÕ IOKit/IOReturn.h Ç≈Ç∑ÅBDZDZDžÇÕÅAì¡íËÇÃÉtÉ@É~ÉäÇ…å¿íËÇ≥ÇÍǻǢÅAÇ∑Ç◊ǃÇÃàÍî ìIÇ» I/O Kit ÉGÉâÅ[ÇÃÉäÉXÉgǙdžÇËÇ‹Ç∑ÅBÇ≈ÇÕÅAãÔëÃìIÇ»ó·Çå©ÇƒÇ¢Ç´Ç‹ÇµÇÂǧÅB

IOReturn.h DždžÇÈèÓïÒÇégǶnjÅA16 êiêîÇ≈ÇÕ 0xE00002C2 ÇΔÇ»ÇÈÅA-536870206 ÇΔǢǧ I/O Kit ÉGÉâÅ[ÇÕÅAéüÇÃÇÊǧDžëŒâûïtÇØÇÁÇÍÇÈDZÇΔÇ™ÇÌÇ©ÇËÇ‹Ç∑ÅB

system
= 0x38
CODE>sys_iokit ÉGÉâÅ[ÇΔìØÇ∂Ç≈Ç∑ÅB
subSystem
= 0x0
ǵÇΩǙǡǃ sub_iokit_common ÉGÉâÅ[Ç≈džÇÈDZÇΔÇ™ÇÌÇ©ÇËÇ‹Ç∑ÅB
code
= 0x2C2
ǬNjÇËÅADZÇÍÇÕ kIOReturnBadArgument ÉGÉâÅ[Ç≈Ç∑ÅB


I/O Kit ÉGÉâÅ[ÉRÅ[ÉhÇ©ÇÁDZÇÍÇÁ 3 ǬÇÃílÇéÊÇËèoÇ∑ï÷óòÇ»É}ÉNÉçǙdžÇËÇ‹Ç∑ÅBDZÇÍÇÁÇÉäÉXÉg 2Åimach/error.h ÇÊÇËÅjÇ…é¶ÇµÇ‹Ç∑ÅB

#define  err_get_system(err)  (((err)>>26)&0x3f)
#define  err_get_sub(err)     (((err)>>14)&0xfff)
#define  err_get_code(err)    ((err)&0x3fff)

ÉäÉXÉg 2 I/O Kit ÉGÉâÅ[èÓïÒÇéÊÇËèoÇ∑É}ÉNÉç


Ç‹ÇΩÅAI/O Kit Ç©ÇÁÉVÉXÉeÉÄÇÃílÇ™ sys_mach_ipcÅi0x4ÅAmach/error.h Ç≈íËã`ÅjÇ≈džÇÈÉGÉâÅ[ÉRÅ[ÉhÇ™ï‘ǡǃÇ≠ÇÈDZÇΔǙdžÇËÇ‹Ç∑ÅBDZÇÍÇÁÇÃíÜÇ≈ç≈LJàÍî ìIÇ»ÇÃÇÕ 268435459Åi16 êiêîÇ≈ÇÕ 0x10000003ÅjÇ≈džÇËÅADZÇÍÇÕÅAKernel.framework ÉwÉbÉ_ÅAmach/message.h ÇÃíÜÇ≈íËã`Ç≥ÇÍǃǢÇÈ MACH_SEND_INVALID_DEST ÉGÉâÅ[Ç≈Ç∑ÅBÇ»Ç∫ Mach ÇÃÉGÉâÅ[ÉRÅ[ÉhÇéÛÇØéÊÇÈÇ©ÇÕÅAI/O Kit Ç™ÉÜÅ[ÉUãÛä‘ÇΔÉJÅ[ÉlÉãÇÃÇ‚ÇËéÊÇËÇ… Mach ÉÅÉbÉZÅ[ÉWÇégǧDZÇΔÇ™ÇÌÇ©ÇÍÇŒóùâÇ≈Ç´ÇÈÇ≈ǵÇÂǧÅBIOServiceCreatePlugInInterfaceForService ǻǫÇÃåƒÇ—èoǵDžìnÇ≥ÇÍÇÈ io_service_t å^ÇÕÅAIOTypes.h ÇΔǢǧ IOKit.framework ÉwÉbÉ_Ç≈ÇÕ mach_port_t ÇΔǵǃíËã`Ç≥ÇÍǃǢNjÇ∑ÅBǵÇΩǙǡǃÅADZÇÃèÍçáÇà MACH_SEND_INVALID_DEST ÉGÉâÅ[ÇÕÅAio_service_t Ç™ñ≥å¯Ç≈džÇÈDZÇΔÇé¶ÇµÇ‹Ç∑ÅBǬNjÇËÅAio_service_t Ç™èâä˙âªÇ≥ÇÍǃǢǻǢǩÅAÇ∑Ç≈Ç…âï˙Ç≥ÇÍǃǢÇÈDZÇΔÇà”ñ°ÇµÇ‹Ç∑ÅB

Ç‹ÇΩÅAäe I/O Kit ÉtÉ@É~ÉäÇÕÅAï ÇÃÉwÉbÉ_ÉtÉ@ÉCÉãÇ≈ÉtÉ@É~Éäå≈óLÇÃÉGÉâÅ[ÉRÅ[ÉhÇíËã`ǵǃǢNjÇ∑ÅBÇΩÇΔǶnjÅAUSB ÉGÉâÅ[ÉRÅ[ÉhÇÕÅAKernel.framework ì‡Çà IOKit/usb/USB.h DždžÇËÅAFireWire ÉGÉâÅ[ÉRÅ[ÉhÇÕÅAìØÇ∂ Kernel.framework. ì‡Çà IOKit/firewire/IOFireWireFamilyCommon.h DždžÇËÇ‹Ç∑ÅB


[2002 îN 2 åé 6 ì˙]